﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using BasicForms;
using Lists;
using GeneralLibs;

namespace ReportGenerators.ThongKe
{
    public partial class FrmThongKeCacMatHangKhongBanDuoc : BasicForms.FrmSupportPrintableComponents
    {
        public FrmThongKeCacMatHangKhongBanDuoc()
        {
            InitializeComponent();
        }

        private void FrmThongKeCacMatHangKhongBanDuoc_Load(object sender, EventArgs e)
        {
            if (DesignMode) return;
            try
            {
                foreach (DevExpress.XtraGrid.Columns.GridColumn column in gridView.Columns)
                {
                    column.OptionsFilter.AutoFilterCondition = DevExpress.XtraGrid.Columns.AutoFilterCondition.Contains;
                }

                nmrSoThang_EditValueChanged(null, null);
                colTonKho.Visible = chkHienTonKho.Checked;
            }
            catch (Exception ex)
            {
                BasicForms.FrmExceptionNotifier.ShowAndLog(ex);
            }
        }

        private void btnLoad_Click(object sender, EventArgs e)
        {
            BasicForms.FrmProgressBar.StartShowProgress();

            try
            {
                if (nmrSoThang.Text == "")
                {
                    FrmWarning.Show("Thông báo", "Cần phải nhập số tháng.");
                    nmrSoThang.Focus();
                    return;
                }
                DateTime tuNgay = DateTime.Now.AddMonths(-Convert.ToInt32(nmrSoThang.Text));
                int soThang = 0;
                soThang = Convert.ToInt32(nmrSoThang.Text);
                DataTable dt = DanhMucVatTuHangHoa.GetDanhMucHangHoaKhongCoGiaoDichBanRaTheoThoiGian(tuNgay, soThang);

                if (chkHienTonKho.Checked)
                {
                    int count = 1;
                    int total = dt.Rows.Count;
                    foreach (DataRow row in dt.Rows)
                    {
                        if(row["VatTuHangHoaID"] is Guid)
                        {
                            TonKho tonKho = TonKho.CalculateTongTonTuThoiDiemKhoaSoGanNhatDenThoiDiemNhapVao(DateTime.Now, (Guid)row["VatTuHangHoaID"]);
                            row["TonKho"] = tonKho.SoLuong;
                        }
                        FrmProgressBar.Status = string.Format("Đang xử lý tồn kho được {0}/{1} hàng", count++, total); ;
                    }
                }

                gridControl.DataSource = dt;
                FormatNumberInGridView(gridView);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                BasicForms.FrmProgressBar.FinishShowProgress();
            }
        }

        private void btnPreview_Click(object sender, EventArgs e)
        {
            PrintWithHeaderAndFooter(false, gridControl, true, true,
                string.Format("Thống kê các hàng không có giao dịch bán ra trong {0} tháng gần nhất", nmrSoThang.Text), "", "", "", "");
        }

        private void nmrSoThang_EditValueChanged(object sender, EventArgs e)
        {
            if (nmrSoThang.Text != "")
            {
                DateTime tuNgay = DateTime.Now.AddMonths(-Convert.ToInt32(nmrSoThang.Text));
                lblShowTime.Text = string.Format("(Từ ngày {0} đến nay)", CommonLib.DateTimeVNToString(tuNgay));
            }
        }

        private void chkHienTonKho_CheckedChanged(object sender, EventArgs e)
        {
            colTonKho.Visible = chkHienTonKho.Checked;
            if (colTonKho.Visible)
            {
                btnLoad_Click(null, null);
            }
        }
    }
}
